1. Field of the Invention
The present invention relates to model driven development and particularly to model generation of a systems architecture.
2. Description of the Related Art
Modern software systems have become increasingly pervasive and open-ended, and are expected to deliver critical computing services in a dependable manner across multiple, heterogeneous computing environments. To better manage the complexity of developing modern software systems, software development strategies can be employed which raise the level of abstraction at which software systems are conceived, architected, implemented and evolved. Model-driven development (MDD) represents one such software development strategy in which models are the primary artifacts of software development. As used herein, a “model” refers to a collection of information having a well-defined containment hierarchy.
Modeling complex applications has several general benefits which can include a better understanding of the business or engineering situation at hand, the construction and design of a systems architecture, and the creation of visualizations of code and other forms of implementation. Although some may argue that application visualization alone does not constitute a model, the essence of modeling is abstraction and any visualization of code is indeed an abstraction in that application information can be selectively exposed while details deemed unnecessary or unwanted can be suppressed. Nevertheless, the terms “code model”, “implementation model” or “platform-specific model” (PSM) are often used to qualify such abstractions from a higher-level, platform independent model (PIM) that does not have such direct relationships to program code.
In conventional MDD, visual models can be created from a methodological process that often begins with application requirements and culminates with a high-level architectural design model. Developers can create a detailed design model from which skeletal code can be generated to an integrated development environment. The integrated development environment, in turn, can be used to complete the detailed coding. Any changes to the code that affect the design model can be synchronized back into the model. Likewise, any model changes can be synchronized into the existing code.
The value of model based architecture is apparent to all knowledgeable in the field. However, there remains a challenge with the model based approach in that the model based approach requires substantial knowledge, time, and effort to populate the model. Those familiar with the modeling tools understand the power of model driven development tools as well as the effort required to create a solution model in a model driven development tool. Thus, the challenge is to bridge the gap between model data entry to model value. Traditional methods involve backing up all or part of an existing model and restoring to another model—essentially a model-to-model transformation. These cases are often specific to the solution space to which the cases address and have limited use as they only fit a finite set of reuse criteria. Likewise, generic models oftentimes are too broad and require substantial deletion and find grained adjustment to be practical.